import type { BaseFields, PageParams } from "@/api/typing";
import type { BaseStatus } from "@/typing";

/**分页查询角色参数 */
export interface QueryParams extends PageParams {
  /**角色名称 */
  roleName: string;
  /**角色编码 */
  roleCode: string;
  /**角色状态 */
  roleStatus: BaseStatus;
}
/**分页查询角色响应 */
export interface QueryResult extends BaseFields {
  /**角色ID */
  roleId: string;
  /**角色名称 */
  roleName: string;
  /**角色编码 */
  roleCode: string;
  /**角色描述 */
  roleDesc: string;
  /**角色状态 */
  roleStatus: BaseStatus;
  /**组织ID列表 */
  organizationIdList: string[];
}

/**编辑角色参数 */
export interface RoleParams {
  /**角色ID */
  roleId: string;
  /**角色名称 */
  roleName: string;
  /**角色编码 */
  roleCode: string;
  /**角色描述 */
  roleDesc: string;
  /**角色状态 */
  roleStatus: BaseStatus;
  /**角色访问组织 */
  organizationIdList: string[];
}

/**删除角色参数 */
export interface DeleteParams {
  /**角色ID */
  roleId: string;
}

/**查询角色关系响应 */
export interface QueryRelationResult {
  /**勾选节点 */
  checkedKeys: string[];
  /**半勾选节点 */
  halfCheckedKeys: string[];
}

/**修改角色关系参数 */
export interface RelationParams {
  /**角色ID */
  roleId: string;
  /**关系ID列表 */
  relationIdList: {
    checkType: "checked" | "halfChecked";
    keys: string[];
  }[];
}
